关于m^n用递归解的问题

来源:百度知道 编辑:UC知道 时间:2024/05/31 13:42:57
//刚好在网上看到一个求递归解m^n的问题,结果选择了(1),我觉得有问题
// (1) 这个算不上正统的递归,因为它使用了外部参数系
static int i = 0;
static int GetPower(int num, int p) {
if (++i <= p)
return GetPower(num, p) * num;
else {
i = 0;
return 1;
}
}

// (2)这个才是递归的精神所在,
//递归 a^b
static int pow(int a,int b){
if(b>1){
return a*p(a,b-1);
}
return a;
}
//递归 a^b
static int pow(int a,int b){
if(b>1){
return a*pow(a,b-1);
}
return a;
}

递归就是自己调用自己的方法,当然注意设置 端点
递归和循环可以互化
但起思想比较好理解
其运行方式是:从追问结果 一直 追问到 端点,然后从端点的值步步返回到结果
术语:回溯

递归看起来容易理解,但把问题用递归的思路来设计,这步比较深奥
去研究下 汉诺塔 的程序